home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Database How-To / Visual Basic 4 Database - How-to (The Waite Group)(1995).iso / authors.cl_ / authors.cl
Text File  |  1995-03-12  |  2KB  |  69 lines

  1. Version 1.0 Class
  2. Attribute VB_Name = "clsAuthors"
  3. Attribute VB_Creatable = True
  4. Attribute VB_Exposed = True
  5. Option Explicit
  6.  
  7. Private m_Coll As New Collection
  8. Private m_Database As String
  9.  
  10. Property Get Count() As Integer
  11.     Count = m_Coll.Count
  12. End Property
  13. Property Let DatabaseName(theDatabase As String)
  14.     m_Database = theDatabase
  15. End Property
  16. Property Get DatabaseName() As String
  17.     DatabaseName = m_Database
  18. End Property
  19. Public Function FillCollection(append As Boolean, Optional theDatabase As Variant) As Integer
  20.     Dim db As Database
  21.     Dim tbl As Recordset
  22.     Dim au As clsAuthor
  23.     
  24.     If Not IsMissing(theDatabase) Then m_Database = theDatabase
  25.     If m_Database = "" Then Err.Raise ERR_DATABASENOTSPECIFIED
  26.     
  27.     If append = False Then Clear
  28.     
  29.     Set db = DBEngine.Workspaces(0).OpenDatabase(m_Database)
  30.     Set tbl = db.OpenRecordset("Authors")
  31.     If tbl.RecordCount > 0 Then
  32.         tbl.MoveFirst
  33.         Do
  34.             Set au = New clsAuthor
  35.             au.Initialize tbl
  36.             m_Coll.Add Item:=au, key:=CStr(au.AuthorID)
  37.             tbl.MoveNext
  38.         Loop While Not tbl.EOF
  39.     End If
  40.     FillCollection = m_Coll.Count
  41. End Function
  42. Public Sub Add(au As clsAuthor)
  43.     m_Coll.Add Item:=au, key:=CStr(au.AuthorID)
  44. End Sub
  45. Public Sub Remove(theKey As Long)
  46.     m_Coll.Remove CStr(theKey)
  47. End Sub
  48. Public Function Item(theKey As Long) As clsAuthor
  49.     Set Item = m_Coll(CStr(theKey))
  50. End Function
  51. Public Sub Clear()
  52.     Dim i As Integer
  53.     For i = m_Coll.Count To 1 Step -1
  54.         m_Coll.Remove i
  55.     Next i
  56. End Sub
  57. Public Sub FillList(ctrl As Variant)
  58.     Dim i As Integer
  59.         ctrl.Clear
  60.         For i = 1 To m_Coll.Count
  61.             If m_Coll(i).AuthorName <> "" Then
  62.                 ctrl.AddItem m_Coll(i).AuthorName
  63.             Else
  64.                 ctrl.AddItem "<no name>"
  65.             End If
  66.             ctrl.ItemData(ctrl.NewIndex) = m_Coll(i).AuthorID
  67.         Next i
  68. End Sub
  69.